package com.xykj.enterprise.wechat.ext.service.customer;

import com.xykj.enterprise.wechat.bean.ext.BaseResp;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.AddContactWayVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.AddCorpTagVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.ExternalContactListVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.ExternalContactVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GetContactWayVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GetCorpTagListVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GetExternalContactBatchVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GetFollowUserListVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GetUnassignedListVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GroupChatListVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GroupChatVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.TransferCustomerVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.TransferGroupChatVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.TransferResultVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.moment.GetMomentCommentsVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.moment.GetMomentCustomerListVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.moment.GetMomentListVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.moment.GetMomentSendResultVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.moment.GetMomentTaskVo;

import java.util.HashMap;

/**
 * 客户管理
 */
public interface ExternalContactService {

    GetFollowUserListVo getFollowUserList(String accessToken);

    AddContactWayVo addContactWayMiniprogram(String accessToken, HashMap<String, Object> params);

    AddContactWayVo addContactWayQrcode(String accessToken, HashMap<String, Object> params);

    BaseResp deleteContactWay(String accessToken, String config_id);

    GetContactWayVo getContactWay(String accessToken, String config_id);

    BaseResp updateContactWay(String accessToken, HashMap<String, Object> params);

    ExternalContactListVo externalContactList(String accessToken, String userid);

    BaseResp externalContactRemark(String accessToken, HashMap<String, Object> params);

    ExternalContactVo getExternalContact(String accessToken, String external_userid);

    GetExternalContactBatchVo getExternalContactBatch(String accessToken, String userid, String cursor, Integer limit) ;

    GetCorpTagListVo getCorpTagList(String accessToken, String[] tag_id,String[] group_id);

    AddCorpTagVo addCorpTag(String accessToken, HashMap<String, Object> params);

    BaseResp editCorpTag(String accessToken, HashMap<String, Object> params);

    BaseResp deleteCorpTag(String accessToken, HashMap<String, Object> params);

    BaseResp markCorpTag(String accessToken, HashMap<String, Object> params);

    TransferCustomerVo transferCustomer(String accessToken, HashMap<String, Object> params);

    TransferResultVo transferResult(String accessToken, HashMap<String, Object> params);

    GetUnassignedListVo getUnassignedList(String accessToken, HashMap<String, Object> params);

    TransferCustomerVo transferResignedCustomer(String accessToken, HashMap<String, Object> params);

    TransferResultVo transferResignedResult(String accessToken, HashMap<String, Object> params);

    TransferGroupChatVo transferGroupChat(String accessToken, HashMap<String, Object> params);

    GroupChatListVo getGroupChatList(String accessToken, HashMap<String, Object> params);

    GroupChatVo getGroupChat(String accessToken, HashMap<String, Object> params);


    GetMomentListVo getMomentList(String accessToken, HashMap<String, Object> params);

    GetMomentTaskVo getMomentTask(String accessToken, HashMap<String, Object> params);

    GetMomentCustomerListVo getMomentCustomerList(String accessToken, HashMap<String, Object> params);

    GetMomentSendResultVo getMomentSendResult(String accessToken, HashMap<String, Object> params);

    GetMomentCommentsVo getMomentComments(String accessToken, HashMap<String, Object> params);
}
